Built with Alectryon, running Coq+SerAPI v8.13.0+0.13.0. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
From stdpp Require Import prelude.
From Coq Require Import FinFun Lia Program.
From VLSM Require Import Lib.Preamble Lib.ListExtras Lib.FinExtras Lib.FinFunExtras.
From VLSM Require Import Core.VLSM Core.VLSMProjections Core.Composition Core.ProjectionTraces Core.SubProjectionTraces.
From VLSM Require Import Core.Equivocation Core.Equivocation.NoEquivocation.
From VLSM Require Import Core.Equivocators.Common Core.Equivocators.Projections Core.Equivocators.EquivocatorReplay.
From VLSM Require Import Core.Equivocators.MessageProperties Core.Equivocators.Composition.Common.
From VLSM Require Import Core.Equivocators.Composition.Projections Core.Plans.

VLSM Equivocator Full Replay Traces

In this section we show that given a trace of equivocators, one can "replay" that at the end of an existing trace, by first equivocating for each initial state and then performing each transition, but appropriately "shifted".
To make the results more general, we take the trace to be replayed to be produced by a restricted set of equivocators pre-loaded with messages satisfying some conditions.
Section all_equivocating.

Context {message : Type}
  {index : Type}
  {IndEqDec : EqDecision index}
  (IM : index -> VLSM message)
  (Hbs : forall i : index, HasBeenSentCapability (IM i))
  (Hbr : forall i : index, HasBeenReceivedCapability (IM i))
  (index_listing : list index)
  (finite_index : Listing index_listing)
  (seed : message -> Prop)
  (equivocating : list index)
  (* abbreviations *)
  (Hbo : forall i : index, HasBeenObservedCapability (IM i)
    := fun i => HasBeenObservedCapability_from_sent_received (IM i))
  (equiv_index : Type := sub_index equivocating)
  (equivocator_descriptors := equivocator_descriptors IM)
  (equivocators_state_project := equivocators_state_project IM)
  (equivocator_IM := equivocator_IM IM)
  (sub_equivocator_IM := sub_IM equivocator_IM equivocating)
  (sub_IM := sub_IM IM equivocating)
  (equivocator_descriptors_update := equivocator_descriptors_update IM)
  (proper_equivocator_descriptors := proper_equivocator_descriptors IM)
  (equivocators_trace_project := equivocators_trace_project IM)
  (Free := free_composite_vlsm IM)
  (FreeE := free_composite_vlsm equivocator_IM)
  (PreFreeE := pre_loaded_with_all_messages_vlsm FreeE)
  (FreeSubE := free_composite_vlsm sub_equivocator_IM)
  (PreFreeSubE := pre_loaded_with_all_messages_vlsm FreeSubE)
  (Hbs_sub : forall sub_i, HasBeenSentCapability (sub_IM sub_i) := sub_has_been_sent_capabilities IM equivocating Hbs)
  (SeededXE : VLSM message := seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed)
  (equivocators_no_equivocations_vlsm := equivocators_no_equivocations_vlsm IM Hbs)
.

message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m

VLSM_full_projection SeededXE (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating) (lift_sub_state equivocator_IM equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m

VLSM_full_projection SeededXE (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating) (lift_sub_state equivocator_IM equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HomY: option_valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) om

vvalid (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating l) (lift_sub_state equivocator_IM equivocating s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition SeededXE l (s, om) (s', om')
vtransition (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating l) (lift_sub_state equivocator_IM equivocating s, om) = (lift_sub_state equivocator_IM equivocating s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
s: state
H: vinitial_state_prop SeededXE s
vinitial_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HmX: vinitial_message_prop SeededXE m
valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HomY: option_valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) om

vvalid (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating l) (lift_sub_state equivocator_IM equivocating s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HomY: option_valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) om

composite_valid equivocator_IM (lift_sub_label equivocator_IM equivocating l) (lift_sub_state equivocator_IM equivocating s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HomY: option_valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) om

composite_valid (SubProjectionTraces.sub_IM equivocator_IM equivocating) l (s, om)
apply Hv.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition SeededXE l (s, om) (s', om')

vtransition (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_label equivocator_IM equivocating l) (lift_sub_state equivocator_IM equivocating s, om) = (lift_sub_state equivocator_IM equivocating s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition SeededXE l (s, om) (s', om')

composite_transition (SubProjectionTraces.sub_IM equivocator_IM equivocating) l (s, om) = (s', om')
apply H.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
s: state
H: vinitial_state_prop SeededXE s

vinitial_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
s: state
H: vinitial_state_prop SeededXE s

composite_initial_state_prop (SubProjectionTraces.sub_IM equivocator_IM equivocating) s
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
HmX: vinitial_message_prop SeededXE m

valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
Hinit: initial_message_prop m

valid_message_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
Hinit: initial_message_prop m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
i: sub_index equivocating
Him: mi : vinitial_message (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating i), ` mi = m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (lift_sub_state equivocator_IM equivocating s)
i: sub_index equivocating
Him: mi : vinitial_message (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating i), ` mi = m

mi : vinitial_message (equivocator_IM (` i)), ` mi = m
assumption. Qed.
Given a base_state to replay on, the replay label corresponding to a given transition label is obtained as the equivocator_state_append_label.
Definition lift_equivocators_sub_label_to
  (base_s : composite_state equivocator_IM)
  (l : composite_label sub_equivocator_IM)
  : composite_label equivocator_IM
  :=
  let (sub_i, li) := l in
  let i := proj1_sig sub_i in
  existT i (equivocator_state_append_label (IM i) (base_s i) li).
Given a base_state to replay on, the replay state corresponding to a destination state in a transition by appending its components to the base state using equivocator_state_append.
Definition lift_equivocators_sub_state_to
  (base_s : composite_state equivocator_IM)
  (s : composite_state sub_equivocator_IM)
  : composite_state equivocator_IM
  := fun i =>
    match @decide  (sub_index_prop equivocating i) (sub_index_prop_dec equivocating i) with
    | left e =>  equivocator_state_append (base_s i) (s (dec_exist _ i e))
    | _ => base_s i
    end.

message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i

lift_equivocators_sub_state_to base_s s i = equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i Hi))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i

lift_equivocators_sub_state_to base_s s i = equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i Hi))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i

match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i e)) | in_right => base_s i end = equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i Hi))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
Hi, s0: sub_index_prop equivocating i

equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i s0)) = equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i Hi))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
Hi, s0: sub_index_prop equivocating i

s (dec_exist (sub_index_prop equivocating) i Hi) = s (dec_exist (sub_index_prop equivocating) i s0)
apply sub_IM_state_pi. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM

i : index, equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM

i : index, equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index

equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index

equivocator_state_n (base_s i) ≤ equivocator_state_n match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i e)) | in_right => base_s i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
s0: sub_index_prop equivocating i

equivocator_state_n (base_s i) ≤ equivocator_state_n (equivocator_state_append (base_s i) (s (dec_exist (sub_index_prop equivocating) i s0)))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
base_s: composite_state equivocator_IM
s: composite_state sub_equivocator_IM
i: index
s0: sub_index_prop equivocating i

equivocator_state_n (base_s i) ≤ equivocator_state_n (base_s i) + equivocator_state_n (s (dec_exist (sub_index_prop equivocating) i s0))
lia. Qed.
The plan item corresponding to an initial state equivocation
Definition initial_new_machine_transition_item
  (is : composite_state sub_equivocator_IM)
  (eqv : equiv_index)
  : composite_plan_item equivocator_IM
  :=
  let i := proj1_sig eqv in
  let seqv := is eqv in
  let new_l :=
    (existT i (Spawn (equivocator_state_zero seqv)))
    in
  @Build_plan_item message (composite_type equivocator_IM) new_l None.
Command for equivocating all states of an initial composite state.
Definition spawn_initial_state
  (is : composite_state sub_equivocator_IM)
  : composite_plan equivocator_IM
  := map (initial_new_machine_transition_item is) (@sub_index_listing _ _ equivocating index_listing).

Definition replayed_initial_state_from full_replay_state is :=
  fst (composite_apply_plan equivocator_IM full_replay_state (spawn_initial_state is)).
The final state obtained after replaying an initial state is precisely the lifting of that initial state over the given base state.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

( l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end) → finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

( l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end) → finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: NoDup (sub_index_listing equivocating) → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: NoDup (sub_index_listing equivocating) → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

NoDup (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: NoDup (sub_index_listing equivocating) → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

NoDup (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: NoDup (sub_index_listing equivocating) → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

List.NoDup (sub_index_listing equivocating)
apply (finite_sub_index equivocating finite_index).
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (_apply_plan full_replay_state (spawn_initial_state is)).1 = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

(_apply_plan full_replay_state (spawn_initial_state is)).2 = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

x : index, (_apply_plan full_replay_state (spawn_initial_state is)).2 x = lift_equivocators_sub_state_to full_replay_state is x
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
i: index

(_apply_plan full_replay_state (spawn_initial_state is)).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

(_apply_plan full_replay_state (spawn_initial_state is)).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(_apply_plan full_replay_state (spawn_initial_state is)).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end = match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
s: sub_index_prop equivocating i
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

(if decide (dec_exist (sub_index_prop equivocating) i s ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i) = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
s: sub_index_prop equivocating i
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

dec_exist (sub_index_prop equivocating) i s ∈ sub_index_listing equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
i: index
s: sub_index_prop equivocating i
H: (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).2 i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ sub_index_listing equivocating) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

In (dec_exist (sub_index_prop equivocating) i s) (sub_index_listing equivocating)
apply (finite_sub_index equivocating finite_index).
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hincl: incl [] (sub_index_listing equivocating)
Hnodup: NoDup []
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) []): (list transition_item * state)%type
i: index

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ []) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hincl: incl [] (sub_index_listing equivocating)
Hnodup: NoDup []
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) []): (list transition_item * state)%type
i: index

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ []) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hincl: incl [] (sub_index_listing equivocating)
Hnodup: NoDup []
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) []): (list transition_item * state)%type
i: index
s: sub_index_prop equivocating i

tr_full_replay_is.2 i = (let eqv := dec_exist (sub_index_prop equivocating) i s in if decide (eqv ∈ []) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hincl: incl [] (sub_index_listing equivocating)
Hnodup: NoDup []
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) []): (list transition_item * state)%type
i: index
s: sub_index_prop equivocating i

dec_exist (sub_index_prop equivocating) i s ∉ []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hincl: incl [] (sub_index_listing equivocating)
Hnodup: NoDup []
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) []): (list transition_item * state)%type
i: index
s: sub_index_prop equivocating i
Hin: dec_exist (sub_index_prop equivocating) i s ∈ []

False
inversion Hin.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index

incl l (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index

incl l (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: incl l (sub_index_listing equivocating) ∧ incl [x] (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index

incl l (sub_index_listing equivocating)
apply Hincl.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

NoDup l
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

NoDup l
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup l ∧ ( x0 : sub_index equivocating, x0 ∈ l → x0 ∉ [x]) ∧ NoDup [x]
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

NoDup l
apply Hnodup.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state)%type
i: index
IHl: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

(composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: (tr_full_replay_is := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

(composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l ++ map (initial_new_machine_transition_item is) [x])).2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dec_exist (sub_index_prop equivocating) i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: i : index, (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l ++ [initial_new_machine_transition_item is x])).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: i : index, (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan equivocator_IM afinal [initial_new_machine_transition_item is x] in (aitems ++ a'items, a'final)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: i : index, (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in (aitems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))); output := None |}], state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
aitems: list transition_item
afinal: state
IHl: i : index, (aitems, afinal).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

(aitems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))); output := None |}], state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x)))).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
IHl: i : index, afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
IHl: afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: incl (l ++ [x]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [x])
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
IHl: afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
ix: index
Hix: sub_index_prop equivocating ix
Heqx: x = dec_exist (sub_index_prop equivocating) ix Hix

state_update equivocator_IM afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
IHl: afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

state_update equivocator_IM afinal (` (dec_exist (sub_index_prop equivocating) ix Hix)) (equivocator_state_extend (afinal (` (dec_exist (sub_index_prop equivocating) ix Hix))) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
IHl: afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dec_exist (sub_index_prop equivocating) i e ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ¬ sub_index_prop equivocating i
IHl: afinal i = full_replay_state i
state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = full_replay_state i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
e: ix = i

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
n: ix ≠ i
state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
e: ix = i

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

state_update equivocator_IM afinal i (equivocator_state_extend (afinal i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
dec_exist (sub_index_prop equivocating) i s ∉ l
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)

dec_exist (sub_index_prop equivocating) i s ∉ l
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
Heqv: dec_exist (sub_index_prop equivocating) i s ∈ l

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dec_exist (sub_index_prop equivocating) i Hix]
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
Heqv: dec_exist (sub_index_prop equivocating) i s ∈ l

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dec_exist (sub_index_prop equivocating) i Hix]
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
Heqv: dec_exist (sub_index_prop equivocating) i s ∈ l

dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) i Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dec_exist (sub_index_prop equivocating) i Hix]
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
Heqv: dec_exist (sub_index_prop equivocating) i s ∈ l

dec_exist (sub_index_prop equivocating) i Hix ∈ [dec_exist (sub_index_prop equivocating) i Hix]
left.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i
dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) i Hix))) = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i Hix))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

is_singleton_state (IM i) (is (dec_exist (sub_index_prop equivocating) i Hix))
apply (His (dec_exist (sub_index_prop equivocating) i Hix)).
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) i Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dec_exist (sub_index_prop equivocating) i s ∈ l ∨ dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) i Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) i Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) i Hix]) (sub_index_listing equivocating)
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) i Hix])
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dec_exist (sub_index_prop equivocating) i Hix ∈ [dec_exist (sub_index_prop equivocating) i Hix]
left.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
n: ix ≠ i

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
IHl: afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
n: ix ≠ i

afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
e: dec_exist (sub_index_prop equivocating) i s ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
n: ix ≠ i

afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
e: dec_exist (sub_index_prop equivocating) i s ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
n: ix ≠ i

afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
e: dec_exist (sub_index_prop equivocating) i s ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
n: ix ≠ i

dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
e: dec_exist (sub_index_prop equivocating) i s ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
n: ix ≠ i

dec_exist (sub_index_prop equivocating) i s ∈ l ∨ dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) ix Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
e: dec_exist (sub_index_prop equivocating) i s ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s))
n: ix ≠ i

dec_exist (sub_index_prop equivocating) i s ∈ l
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i

afinal i = (if decide (dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) then equivocator_state_append (full_replay_state i) (is (dec_exist (sub_index_prop equivocating) i s)) else full_replay_state i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i

dec_exist (sub_index_prop equivocating) i s ∉ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hin: dec_exist (sub_index_prop equivocating) i s ∈ l ++ [dec_exist (sub_index_prop equivocating) ix Hix]

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hin: dec_exist (sub_index_prop equivocating) i s ∈ l ∨ dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) ix Hix]

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hx: dec_exist (sub_index_prop equivocating) i s ∈ [dec_exist (sub_index_prop equivocating) ix Hix]

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hx: dec_exist (sub_index_prop equivocating) i s = dec_exist (sub_index_prop equivocating) ix Hix

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hx: ` (dec_exist (sub_index_prop equivocating) i s) = ` (dec_exist (sub_index_prop equivocating) ix Hix)

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
s: sub_index_prop equivocating i
n0: dec_exist (sub_index_prop equivocating) i s ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hx: i = ix

False
congruence.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ¬ sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

state_update equivocator_IM afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dec_exist (sub_index_prop equivocating) ix Hix)))) i = full_replay_state i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dec_exist (sub_index_prop equivocating) ix Hix])
Hincl: incl (l ++ [dec_exist (sub_index_prop equivocating) ix Hix]) (sub_index_listing equivocating)
i: index
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ¬ sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

i ≠ ix
congruence. Qed.
For any equivocator_descriptors corresponding to the base state the projection of the replaying of an initial state is empty.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).1 = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

l : list (sub_index equivocating), equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)

equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)
plan: (list transition_item * state)%type
Heqplan: plan = composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)

equivocators_trace_project eqv_descriptors plan.1 = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)
plan: (list transition_item * state)%type
Heqplan: plan = composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)

equivocators_trace_project eqv_descriptors plan.1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (plan.2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)

equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))

equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: equivocators_trace_project eqv_descriptors (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))

equivocators_trace_project eqv_descriptors (let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan equivocator_IM afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan equivocator_IM afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors (litems, lfinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems, lfinal).2 i))

equivocators_trace_project eqv_descriptors (let (a'items, a'final) := composite_apply_plan equivocator_IM lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((let (a'items, a'final) := composite_apply_plan equivocator_IM lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors (litems, lfinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems, lfinal).2 i))
aitems: list transition_item
afinal: state
Hplana: composite_apply_plan equivocator_IM lfinal (map (initial_new_machine_transition_item is) [x]) = (aitems, afinal)

equivocators_trace_project eqv_descriptors (litems ++ aitems, afinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems ++ aitems, afinal).2 i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM
Hplana: composite_apply_plan equivocator_IM lfinal [initial_new_machine_transition_item is x] = (aitems, afinal)

equivocators_trace_project eqv_descriptors (litems ++ aitems) = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (afinal i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocators_trace_project eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocators_trace_project eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM
i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocators_trace_project eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : Common.equivocator_descriptors IM), Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some (sufX, eqv_descriptors') ∧ Projections.equivocators_trace_project IM eqv_descriptors' litems = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors) ∧ Projections.equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
Heqv_descriptors: existing_descriptor (IM (` x)) (eqv_descriptors (` x)) (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
Heqv_descriptors: match eqv_descriptors (` x) with | NewMachine _ => False | Existing i => is_Some (equivocator_state_project (full_replay_state (` x)) i) end
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state (` x)) n)
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

Projections.equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match equivocators_transition_item_project IM eqv_descriptors {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match equivocator_vlsm_transition_item_project (IM (` x)) (composite_transition_item_projection (Common.equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}) (eqv_descriptors (` x)) with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match match eqv_descriptors (` x) with | NewMachine _ => Some (None, eqv_descriptors (` x)) | Existing j => match composite_transition_item_projection (Common.equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | {| l := el; input := im; destination := s; output := om |} => match equivocator_state_project s j with | Some sj => match el with | Spawn sn => if decide (j = equivocator_state_last s) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last s) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing j) end | None => None end end end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match match composite_transition_item_projection (Common.equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | {| l := el; input := im; destination := s; output := om |} => match equivocator_state_project s n with | Some sj => match el with | Spawn sn => if decide (n = equivocator_state_last s) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i lx => if decide (i = n) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing n) | ForkWith i lx => if decide (n = equivocator_state_last s) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing n) end | None => None end end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match match equivocator_state_project (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) (` x)) n with | Some _ => if decide (n = equivocator_state_last (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) (` x))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match match equivocator_state_project (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) n with | Some _ => if decide (n = equivocator_state_last (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

match match match equivocator_state_project (lfinal (` x)) n with | Some _ => if decide (n = equivocator_state_last (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

match match (if decide (n = equivocator_state_last (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n)) with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

match match (if decide (n = equivocator_state_n (lfinal (` x))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n)) with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := Common.equivocators_state_project IM eqv_descriptors (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

Some ([], Common.equivocator_descriptors_update IM eqv_descriptors (` x) (Existing n)) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

([], Common.equivocator_descriptors_update IM eqv_descriptors (` x) (Existing n)) = ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

Common.equivocator_descriptors_update IM eqv_descriptors (` x) (Existing n) = eqv_descriptors
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: vstate (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
Hltn: n < equivocator_state_n (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
lfinal_x_n: vstate (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

eqv_descriptors (` x) = Existing n
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM

i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
e: ` x = i

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ` x ≠ i
equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
e: ` x = i

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) (` x))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM

equivocator_state_n (full_replay_state (` x)) ≤ S (equivocator_state_n (lfinal (` x)))
lia.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ` x ≠ i

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: _composite_state equivocator_IM
n: ` x ≠ i

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM

(l : list (sub_index equivocating)) (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
l: list (sub_index equivocating)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan equivocator_IM afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in finite_trace_last full_replay_state after_a.1 = after_a.2

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (aitems, afinal) := composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan equivocator_IM afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (a'items, a'final) := composite_apply_plan equivocator_IM lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2
aitems: list transition_item
afinal: state
Hplana: composite_apply_plan equivocator_IM lfinal (map (initial_new_machine_transition_item is) [x]) = (aitems, afinal)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ aitems, afinal).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2
aitems: list transition_item
afinal: state

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}], state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: _composite_state equivocator_IM

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: _composite_state equivocator_IM

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (destination {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: _composite_state equivocator_IM

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: _composite_state equivocator_IM
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project (state_update equivocator_IM lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
j: nat
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (state_update equivocator_IM (finite_trace_last full_replay_state litems) (` x) (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) (` x)) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)
n: ` x ≠ i
equivocator_state_project (state_update equivocator_IM (finite_trace_last full_replay_state litems) (` x) (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
j: nat
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (state_update equivocator_IM (finite_trace_last full_replay_state litems) (` x) (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) (` x)) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
j: nat
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = equivocator_state_project (full_replay_state (` x)) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
s_x_j: vstate (IM (` x))
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = Some s_x_j
aitems: list transition_item
afinal: _composite_state equivocator_IM
Hj, Hltj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = Some s_x_j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
s_x_j: vstate (IM (` x))
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = Some s_x_j
aitems: list transition_item
afinal: _composite_state equivocator_IM
Hj, Hltj: j < equivocator_state_n (full_replay_state (` x))

j < equivocator_state_n (finite_trace_last full_replay_state litems (` x))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
s_x_j: vstate (IM (` x))
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = Some s_x_j
Hltj': j < equivocator_state_n (finite_trace_last full_replay_state litems (` x))
aitems: list transition_item
afinal: _composite_state equivocator_IM
Hj, Hltj: j < equivocator_state_n (full_replay_state (` x))

j < equivocator_state_n (finite_trace_last full_replay_state litems (` x))
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)
n: ` x ≠ i

equivocator_state_project (state_update equivocator_IM (finite_trace_last full_replay_state litems) (` x) (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)
n: ` x ≠ i

equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: _composite_state equivocator_IM
is: composite_state sub_equivocator_IM
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan equivocator_IM full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: _composite_state equivocator_IM
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)
n: ` x ≠ i

j < equivocator_state_n (full_replay_state i)
by assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
ji: nat
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) ji)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i)) (equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i)) (equivocator_state_project (full_replay_state i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i)) (Some full_i_ji) = default (equivocator_state_zero (full_replay_state i)) (Some full_i_ji)
reflexivity. Qed. Definition replayed_trace_from full_replay_state is tr := replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item
finite_trace_last full_replay_state (replayed_trace_from full_replay_state is (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ []) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

composite_initial_state_prop sub_equivocator_IM is
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [item]) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ [pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) item]) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
tr': list transition_item
item: transition_item

destination (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) item) = lift_equivocators_sub_state_to full_replay_state (destination item)
reflexivity. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) j = equivocator_state_project (full_replay_state i) j
apply equivocator_state_project_replayed_initial_state_from_left.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [lst]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ [pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) lst]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (destination (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lift_equivocators_sub_state_to full_replay_state (destination lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project (lift_equivocators_sub_state_to full_replay_state (destination lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (full_replay_state i) (destination lst (dec_exist (sub_index_prop equivocating) i e)) | in_right => full_replay_state i end j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)
s: sub_index_prop equivocating i

equivocator_state_project (equivocator_state_append (full_replay_state i) (destination lst (dec_exist (sub_index_prop equivocating) i s))) j = equivocator_state_project (full_replay_state i) j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)
s: sub_index_prop equivocating i

equivocator_state_project (full_replay_state i) j = equivocator_state_project (full_replay_state i) j
reflexivity. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
ji: nat
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) ji)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i)) (equivocator_state_project (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i)) (equivocator_state_project (full_replay_state i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
i: index
ji: nat
full_i_ji: vstate (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i)) (Some full_i_ji) = default (equivocator_state_zero (full_replay_state i)) (Some full_i_ji)
reflexivity. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

equivocators_total_state_project IM lst = equivocators_total_state_project IM full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

equivocators_total_state_project IM lst = equivocators_total_state_project IM full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state

x : index, equivocators_total_state_project IM lst x = equivocators_total_state_project IM full_replay_state x
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index

equivocators_total_state_project IM lst i = equivocators_total_state_project IM full_replay_state i
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state
i: index

not_equivocating_equivocator_descriptors IM (zero_descriptor IM) full_replay_state
apply zero_descriptor_not_equivocating. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project eqv_descriptors (replayed_trace_from full_replay_state is tr) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project eqv_descriptors (replayed_trace_from full_replay_state is tr) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : Common.equivocator_descriptors IM), Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some (sufX, eqv_descriptors') ∧ Projections.equivocators_trace_project IM eqv_descriptors' (replayed_initial_state_from full_replay_state is) = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors) ∧ Projections.equivocators_trace_project IM eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr ++ [x])) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr ++ [x])) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr ++ map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : Common.equivocator_descriptors IM), Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some (sufX, eqv_descriptors') ∧ Projections.equivocators_trace_project IM eqv_descriptors' (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr) = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors) ∧ Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr) = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: Projections.equivocators_trace_project IM eqv_descriptors (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
l: label
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

Projections.equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_full_projection_trace_item_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [{| l := l; input := input; destination := destination; output := output |}]) = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
l: label
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := l; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT sub_i li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT sub_i li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) n)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM (projT1 (l (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})))) (composite_transition_item_projection (Common.equivocator_IM IM) (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})) (eqv_descriptors (projT1 (l (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (...) i Hi) li; input := input; destination := destination; output := output |}))) (l item'); input := VLSM.input (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}); destination := Common.equivocators_state_project IM eqv_descriptors (VLSM.destination (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})); output := VLSM.output (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}) |}, Common.equivocator_descriptors_update IM eqv_descriptors (projT1 (l (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}))) deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors (projT1 (l (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |}))) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection (Common.equivocator_IM IM) (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})) (eqv_descriptors i) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM i) (composite_transition_item_projection (Common.equivocator_IM IM) (pre_VLSM_full_projection_trace_item_project (composite_type sub_equivocator_IM) (composite_type equivocator_IM) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dec_exist (sub_index_prop equivocating) i Hi) li; input := input; destination := destination; output := output |})) (Existing n) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match equivocator_state_project (lift_equivocators_sub_state_to full_replay_state destination i) n with | Some sj => match eq_rect_r (λ n : index, vlabel (Common.equivocator_IM IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := sj; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (Some {| l := lx; input := input; destination := sj; output := output |}, Existing i0) else Some (None, Existing n) end | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: vstate (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, vlabel (Common.equivocator_IM IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: vstate (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, vlabel (Common.equivocator_IM IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (equivocator_state_append (full_replay_state i) (destination (dec_exist (sub_index_prop equivocating) i Hi)))) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (equivocator_state_append (full_replay_state i) (destination (dec_exist (sub_index_prop equivocating) i Hi)))) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: vstate (free_composite_vlsm (Common.equivocator_IM IM))
is: composite_state sub_equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
input: option message
destination: state
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: vstate (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: vstate (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, vlabel (Common.equivocator_IM IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (destination (dec_exist (sub_index_prop equivocating) i Hi)) + equivocator_state_n (full_replay_state i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (destination (dec_exist (sub_index_prop equivocating) i Hi)) + equivocator_state_n (full_replay_state i)) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := Common.equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, Common.equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
destruct li as [sn_d| id li| id li]; simpl ; rewrite !decide_False by lia ; f_equal; f_equal; apply equivocator_descriptors_update_id; assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

equivocators_total_trace_project IM (replayed_trace_from full_replay_state is tr) = []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

equivocators_total_trace_project IM (replayed_trace_from full_replay_state is tr) = []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

from_option fst [] (Projections.equivocators_trace_project IM (zero_descriptor IM) (replayed_trace_from full_replay_state is tr)) = []
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: state
is: composite_state sub_equivocator_IM
tr: list transition_item

not_equivocating_equivocator_descriptors IM (zero_descriptor IM) full_replay_state
apply zero_descriptor_not_equivocating. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
l: composite_label sub_equivocator_IM
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM l (s, om)

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
l: composite_label sub_equivocator_IM
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM l (s, om)

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT sub_i li) (s, om)

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT sub_i li) (s, om)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om)

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om)

equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (lift_equivocators_sub_state_to full_replay_state s i, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om)

equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om)
assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
l: composite_label sub_equivocator_IM
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Hv: composite_valid sub_equivocator_IM l (s, om)
Ht: composite_transition sub_equivocator_IM l (s, om) = (s', om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
l: composite_label sub_equivocator_IM
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Hv: composite_valid sub_equivocator_IM l (s, om)
Ht: composite_transition sub_equivocator_IM l (s, om) = (s', om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Hv: composite_valid sub_equivocator_IM (existT sub_i li) (s, om)
Ht: composite_transition sub_equivocator_IM (existT sub_i li) (s, om) = (s', om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
sub_i: sub_index equivocating
li: vlabel (sub_equivocator_IM sub_i)
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Hv: composite_valid sub_equivocator_IM (existT sub_i li) (s, om)
Ht: composite_transition sub_equivocator_IM (existT sub_i li) (s, om) = (s', om')
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Ht: composite_transition sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om) = (s', om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Ht: composite_transition sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om) = (s', om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) li (s (dec_exist (sub_index_prop equivocating) i Hi), om) = (s' (dec_exist (sub_index_prop equivocating) i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dec_exist (sub_index_prop equivocating) i Hi)), om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
Ht: (let (si', om') := equivocator_transition (IM i) li (s (dec_exist (sub_index_prop equivocating) i Hi), om) in (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) si', om')) = (s', om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) li (s (dec_exist (sub_index_prop equivocating) i Hi), om) = (s' (dec_exist (sub_index_prop equivocating) i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dec_exist (sub_index_prop equivocating) i Hi)), om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
_si': equivocator_state (IM i)
_om': option message
Ht: (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si', _om') = (s', om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: (_si', _om') = (s' (dec_exist (sub_index_prop equivocating) i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dec_exist (sub_index_prop equivocating) i Hi)), om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
s': composite_state sub_equivocator_IM
om': option message
_si': equivocator_state (IM i)
_om': option message
Ht: (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si', _om') = (s', om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: (_si', _om') = (s' (dec_exist (sub_index_prop equivocating) i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dec_exist (sub_index_prop equivocating) i Hi)), om')
H0: state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' = s'
H1: _om' = om'

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Ht: (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si', _om') = (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si', _om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: (_si', _om') = (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) i Hi), _om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) i Hi)), _om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: (_si', _om') = (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) i Hi), _om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) i Hi)), _om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: (_si', _om') = (_si', _om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

composite_transition equivocator_IM (lift_equivocators_sub_label_to full_replay_state (existT (dec_exist (sub_index_prop equivocating) i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(let (si', om') := equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (lift_equivocators_sub_state_to full_replay_state s i, om) in (state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i si', om')) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(let (si', om') := equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) in (state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i si', om')) = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si'), _om') = (lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si'), _om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

x : index, state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') x = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') x
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
e: i = j

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
e: i = j

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
j: index
Hi: sub_index_prop equivocating j
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) j Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) j Hi) li) (s, om)

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) j (equivocator_state_append (full_replay_state j) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) j Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
j: index
Hi: sub_index_prop equivocating j
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) j Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) j Hi) li) (s, om)

equivocator_state_append (full_replay_state j) _si' = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) j Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
j: index
Hi: sub_index_prop equivocating j
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) j Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) j Hi) li) (s, om)

equivocator_state_append (full_replay_state j) _si' = equivocator_state_append (full_replay_state j) (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) j Hi) _si' (dec_exist (sub_index_prop equivocating) j Hi))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
j: index
Hi: sub_index_prop equivocating j
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) j Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) j Hi) li) (s, om)

equivocator_state_append (full_replay_state j) _si' = equivocator_state_append (full_replay_state j) _si'
reflexivity.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j

state_update equivocator_IM (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j

lift_equivocators_sub_state_to full_replay_state s j = lift_equivocators_sub_state_to full_replay_state (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si') j
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j

match decide (sub_index_prop equivocating j) with | left e => equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j e)) | in_right => full_replay_state j end = match decide (sub_index_prop equivocating j) with | left e => equivocator_state_append (full_replay_state j) (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) j e)) | in_right => full_replay_state j end
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j

equivocator_state_append (full_replay_state j) (s (dec_exist (sub_index_prop equivocating) j s0)) = equivocator_state_append (full_replay_state j) (state_update sub_equivocator_IM s (dec_exist (sub_index_prop equivocating) i Hi) _si' (dec_exist (sub_index_prop equivocating) j s0))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j

dec_exist (sub_index_prop equivocating) j s0 ≠ dec_exist (sub_index_prop equivocating) i Hi
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j
Hcontra: dec_exist (sub_index_prop equivocating) j s0 = dec_exist (sub_index_prop equivocating) i Hi

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j
Hcontra: ` (dec_exist (sub_index_prop equivocating) j s0) = ` (dec_exist (sub_index_prop equivocating) i Hi)

False
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
i: index
Hi: sub_index_prop equivocating i
li: vlabel (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))
s: composite_state sub_equivocator_IM
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid sub_equivocator_IM (existT (dec_exist (sub_index_prop equivocating) i Hi) li) (s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j
Hcontra: j = i

False
congruence. Qed. Section pre_loaded_constrained_projection.
By replaying a valid_trace on top of a valid_state we obtain a valid_trace. We derive this as a more general VLSM_weak_full_projection result for a class of VLSM parameterized by a constraint having "good" properties and pre-loaded with a seed, to allow deriving the VLSM_weak_full_projection result for both the free composition of equivocators and for the no message equivocation composition of equivocators (free, or with an additional fixed-set state-equivocation constraint).
Context
  (constraint : composite_label equivocator_IM -> composite_state equivocator_IM * option message -> Prop)
  (seed1 : message -> Prop)
  (SeededCE := pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1)
  (Hconstraint_none : forall i ns s, i ∈ equivocating -> valid_state_prop SeededCE s -> constraint (existT i (Spawn ns)) (s, None))
  (Hseed : forall m, seed m -> valid_message_prop SeededCE m)
  (full_replay_state : composite_state equivocator_IM)
  (Hfull_replay_state : valid_state_prop SeededCE full_replay_state)
  (Hsubsumption : forall l s om, input_valid SeededXE l (s, om) ->
    valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) ->
    constraint (lift_equivocators_sub_label_to full_replay_state l)  (lift_equivocators_sub_state_to full_replay_state s, om))
  .

message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

( l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)) → finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

( l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)) → finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hplan: l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hplan: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
Hplan: finite_valid_trace_from SeededCE full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) (sub_index_listing equivocating))).1

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is

l : list (sub_index equivocating), incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
l: list (sub_index equivocating)

incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: incl [] (sub_index_listing equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) [])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)
finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: incl [] (sub_index_listing equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) [])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
H: incl [] (sub_index_listing equivocating)

valid_state_prop SeededCE full_replay_state
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)

incl l (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)

incl l (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)
i: sub_index equivocating
Hi: In i l

In i (sub_index_listing equivocating)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)
i: sub_index equivocating
Hi: In i l

In i (l ++ [x])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)
i: sub_index equivocating
Hi: In i l

In i l ∨ In i [x]
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: incl l (sub_index_listing equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
H: incl (l ++ [x]) (sub_index_listing equivocating)
i: sub_index equivocating
Hi: In i l

In i l
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l ++ map (initial_new_machine_transition_item is) [x])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l) ∧ finite_valid_plan_from SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (map (initial_new_machine_transition_item is) [x])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (map (initial_new_machine_transition_item is) [x])
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

input_valid_transition SeededCE (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None) (state_update equivocator_IM (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x) (equivocator_state_extend ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x), None).1 (equivocator_state_zero (is x))), None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

input_valid_transition SeededCE (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None) (state_update equivocator_IM (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x) (equivocator_state_extend ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x)) (equivocator_state_zero (is x))), None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
option_valid_message_prop SeededCE None
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
vinitial_state_prop (IM (` x)) (equivocator_state_zero (is x))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
constraint (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l) → valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
apply apply_plan_last_valid.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

option_valid_message_prop SeededCE None
apply option_valid_message_None.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

vinitial_state_prop (IM (` x)) (equivocator_state_zero (is x))
apply His.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

constraint (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

` x ∈ equivocating
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

` x ∈ equivocating
index: Type
IndEqDec: EqDecision index
equivocating: list index
x: sub_index equivocating

` x ∈ equivocating
index: Type
IndEqDec: EqDecision index
equivocating: list index
x: sub_index equivocating
i: index
Hi: sub_index_prop equivocating i
Hx: x = dec_exist (sub_index_prop equivocating) i Hi

` x ∈ equivocating
index: Type
IndEqDec: EqDecision index
equivocating: list index
i: index
Hi: sub_index_prop equivocating i

` (dec_exist (sub_index_prop equivocating) i Hi) ∈ equivocating
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: valid_state_prop SeededCE (finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
lst: state
Heqlst: lst = finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1
IHl: valid_state_prop SeededCE lst

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
lst: state
Heqlst: lst = finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1
IHl: valid_state_prop SeededCE lst

lst = (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
His: composite_initial_state_prop sub_equivocator_IM is
x: sub_index equivocating
l: list (sub_index equivocating)
H: incl (l ++ [x]) (sub_index_listing equivocating)
IHl: valid_state_prop SeededCE (finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1)

finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1 = (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
apply apply_plan_last. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

m : message, vinitial_message_prop SeededXE m → valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

m : message, vinitial_message_prop SeededXE m → valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hseeded: seed m
valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
i: index
Hi: bool_decide (sub_index_prop equivocating i)
Hinit: mi : vinitial_message (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating (i ↾ Hi)), ` mi = m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
i: index
Hi: bool_decide (sub_index_prop equivocating i)
Hinit: mi : vinitial_message (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating (i ↾ Hi)), ` mi = m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
i: index
Hi: bool_decide (sub_index_prop equivocating i)
Hinit: mi : vinitial_message (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating (i ↾ Hi)), ` mi = m

mi : vinitial_message (equivocator_IM i), ` mi = m
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hseeded: seed m

valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hseeded: seed m

seed m
assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

VLSM_weak_full_projection SeededXE SeededCE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

VLSM_weak_full_projection SeededXE SeededCE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

vvalid SeededCE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition SeededXE l (s, om) (s', om')
vtransition SeededCE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state
H: vinitial_state_prop SeededXE s
valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HmX: vinitial_message_prop SeededXE m
valid_message_prop SeededCE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

vvalid SeededCE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om
constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

composite_valid equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

composite_valid sub_equivocator_IM l (s, om)
apply Hv.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
apply Hsubsumption; assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition SeededXE l (s, om) (s', om')

vtransition SeededCE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
apply lift_equivocators_sub_transition; apply H.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state
H: vinitial_state_prop SeededXE s

valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state
H: vinitial_state_prop SeededXE s

valid_state_prop SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state s))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state
H: vinitial_state_prop SeededXE s

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state s)
by apply replayed_initial_state_from_valid.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label
s: state
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HmX: vinitial_message_prop SeededXE m

valid_message_prop SeededCE m
by apply lift_initial_message. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is) ∧ finite_valid_trace_from SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is)) (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is)) (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE (lift_equivocators_sub_state_to full_replay_state is) (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
constraint: composite_label equivocator_IM → composite_state equivocator_IM * option message → Prop
seed1: message → Prop
SeededCE:= pre_loaded_vlsm (composite_vlsm equivocator_IM constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
His: initial_state_prop is

finite_valid_trace_from SeededXE is tr → finite_valid_trace_from SeededCE (lift_equivocators_sub_state_to full_replay_state is) (pre_VLSM_full_projection_finite_trace_project (type FreeSubE) (type FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
apply (VLSM_weak_full_projection_finite_valid_trace_from lift_equivocators_sub_weak_projection). Qed. End pre_loaded_constrained_projection.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state

VLSM_weak_full_projection SeededXE PreFreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state

VLSM_weak_full_projection SeededXE PreFreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state

(sX : state) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from PreFreeE (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type PreFreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
sX: state
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX

finite_valid_trace_from PreFreeE (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type PreFreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
sX: state
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

finite_valid_trace_from PreFreeE (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type PreFreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
sX: state
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

finite_valid_trace_from (mk_vlsm (machine (pre_loaded_vlsm FreeE (λ _ : message, True)))) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type PreFreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(sX : state) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (mk_vlsm (machine (pre_loaded_vlsm FreeE (λ _ : message, True)))) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type PreFreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) s → free_constraint equivocator_IM (existT i (Spawn ns)) (s, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
m : message, seed m → valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
(l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) s → free_constraint equivocator_IM (existT i (Spawn ns)) (s, None)
intros; exact I.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

m : message, seed m → valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
m: message
H: seed m

valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
m: message
H: seed m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
m: message
H: seed m

True
exact I.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_vlsm FreeE (λ _ : message, True)))) full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) full_replay_state
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s)

free_constraint equivocator_IM (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
exact I. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state

VLSM_weak_full_projection PreFreeSubE PreFreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state

VLSM_weak_full_projection PreFreeSubE PreFreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
om: option message
Hv: input_valid PreFreeSubE l (s, om)
HsY: valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop PreFreeE om

vvalid PreFreeE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition PreFreeSubE l (s, om) (s', om')
vtransition PreFreeE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
m: message
Hv: input_valid PreFreeSubE l (s, Some m)
HsY: valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
HmX: vinitial_message_prop PreFreeSubE m
valid_message_prop PreFreeE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
om: option message
Hv: input_valid PreFreeSubE l (s, om)
HsY: valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop PreFreeE om

vvalid PreFreeE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
split; [apply lift_equivocators_sub_valid; apply Hv|exact I].
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
om: option message
s': state
om': option message
H: input_valid_transition PreFreeSubE l (s, om) (s', om')

vtransition PreFreeE (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
apply lift_equivocators_sub_transition; apply H.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s

valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s

valid_state_prop PreFreeE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state s))
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s

finite_valid_trace_from PreFreeE full_replay_state (replayed_initial_state_from full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

finite_valid_trace_from PreFreeE full_replay_state (replayed_initial_state_from full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

finite_valid_trace_from (mk_vlsm (machine (pre_loaded_vlsm FreeE (λ _ : message, True)))) full_replay_state (replayed_initial_state_from full_replay_state s)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) s → free_constraint equivocator_IM (existT i (Spawn ns)) (s, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
composite_initial_state_prop sub_equivocator_IM s
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

(i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) s → free_constraint equivocator_IM (existT i (Spawn ns)) (s, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))
i: index
ns: vstate (IM i)
s0: state
H0: i ∈ equivocating
H1: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) s0

free_constraint equivocator_IM (existT i (Spawn ns)) (s0, None)
exact I.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM)) (λ _ : message, True)) full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm FreeE))) full_replay_state
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
s: state
H: vinitial_state_prop PreFreeSubE s
Heq: VLSM_eq (pre_loaded_with_all_messages_vlsm FreeE) (pre_loaded_vlsm FreeE (λ _ : message, True))

composite_initial_state_prop sub_equivocator_IM s
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop PreFreeE full_replay_state
l: label
s: state
m: message
Hv: input_valid PreFreeSubE l (s, Some m)
HsY: valid_state_prop PreFreeE (lift_equivocators_sub_state_to full_replay_state s)
HmX: vinitial_message_prop PreFreeSubE m

valid_message_prop PreFreeE m
apply any_message_is_valid_in_preloaded. Qed. Section seeded_no_equiv. Context (SeededAllXE : VLSM message := composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint _) (equivocator_Hbs IM Hbs) seed) (full_replay_state : composite_state equivocator_IM) (Hfull_replay_state : valid_state_prop SeededAllXE full_replay_state) .
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label
s: state
m: message
H: input_valid SeededXE l (s, Some m)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label
s: state
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hc1: composite_no_equivocations_except_from (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) seed l (s, Some m)
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hsub_sent: composite_has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hseeded: seed m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hsub_sent: composite_has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating) (equivocator_Hbs (SubProjectionTraces.sub_IM IM equivocating) (sub_has_been_sent_capabilities IM equivocating Hbs)) (s, Some m).1 m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

composite_has_been_sent equivocator_IM (equivocator_Hbs IM Hbs) (lift_equivocators_sub_state_to full_replay_state s, Some m).1 m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

has_been_sent (equivocator_IM i) ((lift_equivocators_sub_state_to full_replay_state s, Some m).1 i) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

equivocator_has_been_sent (IM i) (lift_equivocators_sub_state_to full_replay_state s i) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
sub_i: sub_index equivocating
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dec_exist (sub_index_prop equivocating) i Hi

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
i: index
Hi: sub_index_prop equivocating i
Hsent: has_been_sent (SubProjectionTraces.sub_IM (Common.equivocator_IM IM) equivocating (dec_exist (sub_index_prop equivocating) i Hi)) ((s, Some m).1 (dec_exist (sub_index_prop equivocating) i Hi)) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
i: index
Hi: sub_index_prop equivocating i
Hsent: has_been_sent (Common.equivocator_IM IM (` (dec_exist (sub_index_prop equivocating) i Hi))) ((s, Some m).1 (dec_exist (sub_index_prop equivocating) i Hi)) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dec_exist (sub_index_prop equivocating) i Hi)) m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dec_exist (sub_index_prop equivocating) i Hi)) m
Hfull_replay_state_pr: valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dec_exist (sub_index_prop equivocating) i Hi)) m
Hfull_replay_state_pr: valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM (dec_exist (sub_index_prop equivocating) i Hi))) (s (dec_exist (sub_index_prop equivocating) i Hi))

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dec_exist (sub_index_prop equivocating) i Hi))) m
apply equivocator_state_append_sent_right; assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hseeded: seed m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

composite_no_equivocations_except_from equivocator_IM (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)))) full_replay_state
l: label
s: state
m: message
constraint:= no_equivocations_additional_constraint_with_pre_loaded sub_equivocator_IM (free_constraint sub_equivocator_IM) (equivocator_Hbs sub_IM Hbs_sub) seed: composite_label sub_equivocator_IM → composite_state sub_equivocator_IM * option message → Prop
Hs: valid_state_prop (mk_vlsm (machine (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)))) s
Hseeded: seed m
Hfull_replay_state_pr: i : index, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm equivocator_IM (free_constraint equivocator_IM))) full_replay_state → valid_state_prop (pre_loaded_with_all_messages_vlsm (equivocator_IM i)) (full_replay_state i)
Hincl: VLSM_incl (pre_loaded_vlsm (composite_vlsm sub_equivocator_IM constraint) seed) (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint))
Hs_pr: i : sub_index equivocating, valid_state_prop (pre_loaded_with_all_messages_vlsm (composite_vlsm sub_equivocator_IM constraint)) s → valid_state_prop (pre_loaded_with_all_messages_vlsm (sub_equivocator_IM i)) (s i)

seed m
assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

m : message, seed m → valid_message_prop SeededAllXE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

m : message, seed m → valid_message_prop SeededAllXE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
Hm: seed m

valid_message_prop SeededAllXE m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
Hm: seed m

initial_message_prop m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
Hm: seed m

seed m
assumption. Qed.
Here we specialize the generic lift_equivocators_sub_weak_projection result for the equivocators_no_equivocations_constraint.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

VLSM_weak_full_projection SeededXE SeededAllXE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

VLSM_weak_full_projection SeededXE SeededAllXE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(sX : state) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from SeededAllXE (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_full_projection_finite_trace_project (type SeededXE) (type SeededAllXE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
i: index
ns: vstate (IM i)
s: state
H: i ∈ equivocating
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) s

no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (existT i (Spawn ns)) (s, None)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
H: seed m
valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)
no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
i: index
ns: vstate (IM i)
s: state
H: i ∈ equivocating
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) s

no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (existT i (Spawn ns)) (s, None)
split; exact I.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
H: seed m

valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) m
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
H: seed m

seed m
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state
assumption.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)

no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
apply SeededNoEquiv_subsumption; assumption. Qed.
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (i : index) (ns : vstate (IM i)) (s : state), i ∈ equivocating → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) s → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (existT i (Spawn ns)) (s, None)) → ( m : message, seed m → valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) m) → full_replay_state : composite_state equivocator_IM, valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state → ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( m : message, seed m → valid_message_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) m) → full_replay_state : composite_state equivocator_IM, valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state → ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: full_replay_state : composite_state equivocator_IM, valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state → ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

(l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)

no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
IndEqDec: EqDecision index
IM: index → VLSM message
Hbs: i : index, HasBeenSentCapability (IM i)
Hbr: i : index, HasBeenReceivedCapability (IM i)
index_listing: list index
finite_index: Listing index_listing
seed: message → Prop
equivocating: list index
Hbo:= λ i : index, HasBeenObservedCapability_from_sent_received (IM i): i : index, HasBeenObservedCapability (IM i)
equiv_index:= sub_index equivocating: Type
equivocator_descriptors:= Common.equivocator_descriptors IM: Type
equivocators_state_project:= Common.equivocators_state_project IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → vstate (free_composite_vlsm IM)
equivocator_IM:= Common.equivocator_IM IM: index → VLSM message
sub_equivocator_IM:= SubProjectionTraces.sub_IM equivocator_IM equivocating: sub_index equivocating → VLSM message
sub_IM:= SubProjectionTraces.sub_IM IM equivocating: sub_index equivocating → VLSM message
equivocator_descriptors_update:= Common.equivocator_descriptors_update IM: Common.equivocator_descriptors IM → i : index, MachineDescriptor (IM i) → j : index, MachineDescriptor (IM j)
proper_equivocator_descriptors:= Common.proper_equivocator_descriptors IM: Common.equivocator_descriptors IM → vstate (free_composite_vlsm (Common.equivocator_IM IM)) → Prop
equivocators_trace_project:= Projections.equivocators_trace_project IM: Common.equivocator_descriptors IM → list (composite_transition_item (Common.equivocator_IM IM)) → option (list (composite_transition_item IM) * Common.equivocator_descriptors IM)
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm equivocator_IM: VLSM message
PreFreeE:= pre_loaded_with_all_messages_vlsm FreeE: VLSM message
FreeSubE:= free_composite_vlsm sub_equivocator_IM: VLSM message
PreFreeSubE:= pre_loaded_with_all_messages_vlsm FreeSubE: VLSM message
Hbs_sub:= sub_has_been_sent_capabilities IM equivocating Hbs: sub_i : sub_index equivocating, HasBeenSentCapability (sub_IM sub_i)
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM Hbs equivocating seed: VLSM message
equivocators_no_equivocations_vlsm:= Common.equivocators_no_equivocations_vlsm IM Hbs: VLSM message
SeededAllXE:= pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed: VLSM message
full_replay_state: composite_state equivocator_IM
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state sub_equivocator_IM
tr: list (composite_transition_item sub_equivocator_IM)
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label) (s : state) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed (lift_equivocators_sub_label_to full_replay_state l) ( lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state sub_equivocator_IM) (tr : list (composite_transition_item sub_equivocator_IM)), finite_valid_trace SeededXE is tr → finite_valid_trace_from (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)
l: label
s: state
om: option message
H: input_valid SeededXE l (s, om)
H0: valid_state_prop (pre_loaded_vlsm (composite_vlsm equivocator_IM (no_equivocations_additional_constraint_with_pre_loaded equivocator_IM (free_constraint equivocator_IM) (equivocator_Hbs IM Hbs) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)

input_valid SeededXE l (s, om)
assumption. Qed. End seeded_no_equiv. End all_equivocating.